/**
 * 若 a 小于 b，在排序后的数组中 a 应该出现在 b 之前，则返回一个小于 0 的值。
 * 若 a 等于 b，则返回 0。
 * 若 a 大于 b，则返回一个大于 0 的值。
 */

Array.prototype.mySort = function () {
  let fn = typeof arguments[0] === 'function' ? arguments[0] : (x, y) => x - y
  let p
  for (let i = 0; i < this.length; i++) {
    for (let j = i + 1; j < this.length; j++) {
      if (fn(this[i], this[j]) > 0) {
        p = this[i]
        this[i] = this[j]
        this[j] = p
      }
    }
  }
  return this
}
